import { PrefixUrl } from '@/services/aifarm/Common';
import { request } from '@umijs/max';
/**
 * 定义常用的6个固定函数的接口。
 */

const moduleUrl = PrefixUrl + '/landFarmingMaterial/';
const SelectManyByPageUrl = moduleUrl + 'selectManyByPage';
const SelectManyUrl = moduleUrl + 'selectMany';
const SelectByIdUrl = moduleUrl + 'selectById';
const InsertOrUpdateUrl = moduleUrl + 'insertOrUpdate';
const DeleteByIdUrl = moduleUrl + 'deleteById';

/**
 * 定义用到的数据类型，例如特殊的查询字段与返回字段
 */


// 自定义的查询参数，可以根据自己的需求扩展
export type selectManyParams = {
  [property: string]: any; //这个属性保证任何数据传入都不会报错
};

/**
 * 分页查询 农事使用的农资情况表
 * @param params : 如果是分页就添加上Farm.SelectByPageParams
 */
export async function selectManyByPageForLandFarmingMaterial(params: selectManyParams & Farm.SelectByPageParams) {
  return request<Farm.ResponseInfo<Farm.ResponseListData<Farm.LandFarmingMaterial>>>(SelectManyByPageUrl, {
    method: 'GET',
    params,
  });
}

/**
 * 查询所有 农事使用的农资情况表
 */
export async function selectManyForLandFarmingMaterial() {
  return request<Farm.ResponseInfo<Farm.ResponseListData<Farm.LandFarmingMaterial>>>(SelectManyUrl, {
    method: 'GET',
  });
}

/**
 * 根据ID查询 农事使用的农资情况表
 */
export async function selectByIdForLandFarmingMaterial(landFarmingMaterialId: number) {
  return request<Farm.ResponseInfo<Farm.LandFarmingMaterial>>(SelectByIdUrl, {
    method: 'GET',
    params: {
      landFarmingMaterialId,
    },
  });
}

/**
 * 保存或更新 农事使用的农资情况表
 * @param data Partial 会为每个属性添加可选性
 * @returns number： 返回主键
 */
export async function insertOrUpdateForLandFarmingMaterial(data: Partial<Farm.LandFarmingMaterial>) {
  return request<Farm.ResponseInfo<number>>(InsertOrUpdateUrl, {
    method: 'POST',
    data,
  });
}

/**
 * 删除 农事使用的农资情况表
 * @returns number： 1 代表更系了1条数据库 ; 0 代表没有更新数据库
 */
export async function deleteByIdForLandFarmingMaterial(landFarmingMaterialId: number) {
  return request<Farm.ResponseInfo<number>>(DeleteByIdUrl, {
    method: 'GET',
    params: {
      landFarmingMaterialId,
    },
  });
}


